package io.jt808.proto.cmd;

import io.norland.buffer.AutoBuffer;
import io.norland.annotations.Proto;
import io.norland.proto.IProto;
import lombok.Data;

/**
 * 信息服务
 */
@Proto("8304")
@Data
public class JT8304 implements IProto {
    /**
     * 信息类型
     */
    private byte messageType;
    /**
     * 信息长度
     */
    private short messageLength;
    /**
     * 信息内容
     */
    private String message;

    public final byte[] writeToBytes() {
        AutoBuffer bytes = new AutoBuffer();
        bytes.writeByte(messageType);
        bytes.writeShort(messageLength);
        bytes.writeGbkString(message, messageLength);
        return bytes.array();
    }

    public final void readFromBuf(AutoBuffer buff) {
        messageType = buff.readByte();
        messageLength = buff.readShort();
        message = buff.readGbkString();
    }

//    public static void main(String[] args) {
//        byte[] bytes = new byte[]{
//                0x00,
//                0x00, 0x05,
//                (byte) 0xBA, (byte) 0xBD, (byte) 0xD4, (byte) 0xBA,
//                0x38
//        };
//        JT8304 jt8301 = new JT8304();
//        jt8301.readFromBuf(new AutoBuffer(bytes));
//        System.out.println(new String(bytes).equals(new String(jt8301.writeToBytes())));
//    }
}